//package com.cssy.yd.basic.web;
//
//
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.List;
//import java.util.Map;
//
//import javax.annotation.Resource;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//
//import org.springframework.stereotype.Controller;
//import org.springframework.ui.Model;
//import org.springframework.validation.BindingResult;
//import org.springframework.web.bind.annotation.PathVariable;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.ResponseBody;
//
//import com.cssy.base.web.BaseController;
//import com.cssy.base.web.BodyMsg;
//import com.cssy.yd.basic.entity.BasicMaterialstypeDO;
//import com.cssy.yd.basic.service.IBasicMaterialstypeService;
//import com.plat.exception.SyBaseException;
//import com.plat.helper.JqGridHandler;
//import com.plat.helper.SearchCondition;
//import com.plat.helper.SearchConditions;
//import com.plat.helper.SearchResult;
//import com.plat.util.DateUtils;
//import com.plat.util.GlobalResLoader;
//import com.plat.util.IDCodeTypeUtil;
//import com.plat.util.OperationFlag;
//import com.plat.util.SessionUtil;
//import com.plat.util.json.AjaxUtil;
//import com.plat.util.json.OutJsonGrid;
//import com.yuendong.sy.po.code.SyCode;
//import com.yuendong.sy.service.code.SyCodeType;
//import com.yuendong.sy.service.code.impl.SyCodeService;
//@Controller
//@RequestMapping("/yd/basic/matertypeUpdate")
//public class MaterialstypeUpdateController extends BaseController<BasicMaterialstypeDO>{
//	private static final String itemtype="材料分类";
//	private static final String MANAGER = "/yd/basic/materialstotype/TypeManager";//列表页面
//	private static final String EIDT = "/yd/basic/materialstotype/TypeOperation";//添加、修改、显示页面
//	
//	@Resource(name="basicmatertypeService")
//	private IBasicMaterialstypeService basicmatertypeService;
//	
//	@Resource(name="syCodeService")
//	private SyCodeService syCodeService;
//	
//
//	public String manager(HttpServletRequest request, Model model)
//			throws Exception {
//		return MANAGER;
//	}
//	
//	
//	@Override
//	public void list(HttpServletRequest request, HttpServletResponse response)
//			throws Exception {
//		JqGridHandler hander=new JqGridHandler(request);
//		SearchConditions scs = new SearchConditions();
//		String id = request.getParameter("ID");
//		String bmID =request.getParameter("bmID");
//		if(id != null && !id.equals("")){
//			scs.addCondition("parentid", id, SearchCondition.OP_EQUAL);
//		}else if(bmID!=null&&!"".equals(bmID)){
//			scs.addCondition("parentid", bmID,SearchCondition.OP_EQUAL);
//		}
//		hander.getWheres(scs);
//		if(scs.getOrderBy()==null||"".equals(scs.getOrderBy()))
//			 scs.setOrderBy("code desc");
//		SearchResult result=	basicmatertypeService.findListByExample(scs);
//		OutJsonGrid out=new OutJsonGrid(result);
//		out.printJSon(response);
//		
//	}
//
//	@Override
//	public String operationForm(HttpServletRequest request,@PathVariable String id,
//			@PathVariable String flag, Model model) throws Exception {
//		BasicMaterialstypeDO bm=	basicmatertypeService.findListById(id);
//		if(OperationFlag.ADD.equals(flag)){//我新增加时操作
//			model.addAttribute("bmName",bm.getName());
//			model.addAttribute("bmID",bm.getId());
//			model.addAttribute("flag", "add");
//		}else{
//			model.addAttribute("bmID",bm.getParentid());
//			model.addAttribute("bm",bm);
//			model.addAttribute("flag","edit");
//		}
//		return EIDT;
//	}
//	
//	
//	
//	@Override
//	public Map<String, Object> save(HttpServletRequest request,
//			BasicMaterialstypeDO curAP, BindingResult result, Model model)
//	{
//		BodyMsg bodyMap=BodyMsg.getInstance();
//		
//		try {
//			if(curAP.getName().equals(itemtype)){
//				bodyMap.isFail();
//				bodyMap.configWebInfor("不能增加与顶级类型相同的名称");
//				return bodyMap.modelMap;
//			}else{
//				SearchConditions sc = new SearchConditions();
//				sc.addCondition("parentname", curAP.getParentname(),SearchCondition.OP_EQUAL);
//				List<BasicMaterialstypeDO> lDos =  basicmatertypeService.findListByExample(sc).getResults();
//				sc.addCondition("name", curAP.getName(),SearchCondition.OP_EQUAL);
//				for (BasicMaterialstypeDO basicMaterialstypeDO : lDos) {
//					if(!(curAP.getId()==""?"":curAP.getId()).equals(basicMaterialstypeDO.getId()) && basicMaterialstypeDO.getName().equals(curAP.getName())){
//						bodyMap.isFail();
//						bodyMap.configWebInfor("同一类型中名称不能相同");
//						return bodyMap.modelMap;
//					}else if(!"".equals(curAP.getRemark()) && curAP.getRemark() != null){
//						if(!(curAP.getId()==""?"":curAP.getId()).equals(basicMaterialstypeDO.getId()) && basicMaterialstypeDO.getRemark().equals(curAP.getRemark())){
//							bodyMap.isFail();
//							bodyMap.configWebInfor("同一类型中代码不能相同");
//							return bodyMap.modelMap;
//						}
//					}
//				}
//				
//				if(curAP.getId()!=null && !"".equals(curAP.getId())){//修改
//					basicmatertypeService.update(curAP, SessionUtil.getUser(request));
//					bodyMap.isSuccess();
//					bodyMap.configWebInfor(GlobalResLoader.getOpsuccess());
//					bodyMap.configWebId(curAP.getId());
//				}else{//新增
//					SearchConditions scs = new SearchConditions();
//					SearchResult st = basicmatertypeService.findListByExample(scs);
//					List<BasicMaterialstypeDO> bd =st.getResults();
//					BasicMaterialstypeDO cdo=null;
//					if(bd.size()>0){
//						curAP.setCode(syCodeService.getCode("PA","PA",SyCode.DATE_YYMM,5));
//						cdo=basicmatertypeService.save(curAP, SessionUtil.getUser(request));
//					}else{
//						curAP.setName(itemtype);
//						curAP.setCode(syCodeService.getCode("PA","PA",SyCode.DATE_YYMM,5));
//						cdo=basicmatertypeService.save(curAP, SessionUtil.getUser(request));
//					}
//					bodyMap.isSuccess();
//					bodyMap.configWebInfor(GlobalResLoader.getOpsuccess());
//					bodyMap.configWebId(cdo.getId());
//					}
//			}
//		} catch (Exception e) {			
//			e.printStackTrace();
//			bodyMap.isFail();
//			bodyMap.configWebInfor(GlobalResLoader.getOpfailed()+e.getMessage());
//		}
//		return bodyMap.modelMap;
//		
//	}
//		
//
//	@Override
//	public Map<String, Object> delete(HttpServletRequest request,
//			HttpServletResponse response, Model model) throws Exception {
//		BodyMsg bodyMap=BodyMsg.getInstance();
//		try{
//			String ids = request.getParameter("ids");
//			String[] fields=ids.split(",");
//			
//			for(String field : fields){
//				basicmatertypeService.delete(field, SessionUtil.getUser(request));
//			}
//		
//			bodyMap.isSuccess(GlobalResLoader.getOpsuccess());
//		}catch(Exception e){
//			e.printStackTrace();
//			bodyMap.isFail(GlobalResLoader.getOpfailed()+e.getMessage());
//		}
//		return bodyMap.modelMap;
//	}
//
//	@RequestMapping(value = "/tree")
//	public void treelist(HttpServletRequest request,HttpServletResponse response)throws Exception{
//		String tr=null;
//		List<BasicMaterialstypeDO> list =basicmatertypeService.findByName(itemtype);
//		if(list.size()>0){
//			tr=tree(list);
//		}else{
//			String id=IDCodeTypeUtil.getId();
//			StringBuffer sf =new StringBuffer();
//			sf.append("[");
//			for(int i=0;i<list.size();i++){
//				sf.append("{");
//				sf.append("\"text\":").append("\"").append(itemtype).append("\"").append(",").append("\"id\":").append("\"").append(id).append("\"");
//				sf.append("}");
//			}
//			sf.append("]");
//			tr=sf.toString();
//			BasicMaterialstypeDO itemype =new BasicMaterialstypeDO();
//			itemype.setCode(syCodeService.getCode("PA","PA",SyCode.DATE_YYMM,5));
//			itemype.setName(itemtype);
//			itemype.setId(id);
//			basicmatertypeService.save(itemype, SessionUtil.getUser(request));
//			
//		}
//		AjaxUtil.printJSonArr(response, tr);
//	}
//	
//    /**
//     * 自调函数 生成tree数据
//     **/
//	private String  tree(List<BasicMaterialstypeDO> list) throws SyBaseException {
//		List<BasicMaterialstypeDO> list1 =null;
//		StringBuffer sf =new StringBuffer();
//		sf.append("[");
//		for(int i=0;i<list.size();i++){
//			sf.append("{");
//			sf.append("\"text\":").append("\"").append(list.get(i).getName()).append("\"").append(",").append("\"id\":").append("\"").append(list.get(i).getId()).append("\"");
//			list1 =basicmatertypeService.findByParentId(list.get(i).getId());
//			if(list1.size()>0){
//				sf.append(",").append("\"children\":");
//				sf.append(tree(list1));
//			}
//			if(i==(list.size()-1)){
//				sf.append("}");
//			}else{
//				sf.append("},");
//			}
//		}
//		sf.append("]");
//		return sf.toString();
//	}
//}
